<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    //知识点：所有ajax请求的回调函数都是异步执行的
    //如果后一个请求依赖于前一个请求的结果 这样的嵌套ajax调用就产生回调地狱现象
    //可以用promise技术来解决回调地狱问题
    //promise本身是es6语法

    //语法：new Promise((resolve,reject)=>{})
    //promise内部的代码运行的结果以三种状态来表示
    //状态：unfinished,未完成（初始状态）
    //状态一:finished，完成，成功
    //状态二：rejected，拒绝，失败
    new Promise((resolve, reject) => {
        //这里可以写任何js代码
        //写在这里的代码可以看做一个任务（功能），这个任务最终必须有一个运行结果（必须是明确的结果）
        //想要在这里更改promise对象的状态，必须使用resolve，reject函数
        //调用resolve函数则Promise状态会立即变为finished成功
        //调用reject函数则Promise状态会立即变为rejected成功

        setTimeout(() => {
            resolve(88888)//Promise状态会立即变为finished成功,会立即调用then方法的回调函数
            //reject(8888)//Promise状态会立即变为rejected失败,会立即调用catch方法的回调函数
        }, 5000)
    }).then((res) => {
        console.log('Promise状态会立即变为finished成功', res);
    }).catch((err) => {
        console.log('Promise状态会立即变为rejected失败', err);
    })
</script>